// 1. 定义对象结构的类型声明
// 写法：[变量名: 类型]: 类型 ：在对象中，表示对象中可以往后添加多个变量并声明其类型。
    
let a_2: {sex:'男',[VariableName: string]:unknown}
a_2 = {sex:'男',name:'hrw',age:18}

// 2.设置函数结构的类型声明
// 写法：方法名: (形参: 类型...) =>类型（返回值）
let b_2: (a: number, b:number) =>number

// 3.数组
    // 两种写法：
    // 1.类型[]
    // 2.Array<类型>
let c_2: string[] = ['a','c']
let c_22: Array<number> = [1,2,3]

// 4.元组：固定长度的数组
// 写法：[类型，类型...] 
let d_21: [string,number] = ['a',1]

// 5.枚举类型
// 写法：
    // enum 枚举名称{变量1, 变量2}
    // 使用：{gender: Gender.male} 或 e_22 = Gender.male
enum Gender {
    male, //0-男
    Famale //1-女
}
let e_21: {name: string, gender: Gender} = {
    name: 'hrw',
    gender: Gender.male
}
let e_22 = Gender.male

// 6. & 联合类型的且 & 写法
let f_21: {name: string} & {age:number} = {name:'hrw',age:18}

// 7.类型别名
// 写法：type Mytype = string ｜ number ｜ unknown
    // 使用： let 变量: Mytype
type Mytype = string | number | {} | []
let G_21: Mytype = {name:'hrw'}
let G_22: Mytype = [1,2,3]






